﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Citas.Dominio;
using NHibernate;
using NHibernate.Criterion;

namespace Citas.Persistencia.NH
{
    public class MedicoDAO : BaseDAO<Medico, Int32>, IMedicoDAO
    {
        public Medico ObtenerPorCodigo(int codigo)
        {
            using (ISession sesion = NHibernateHelper.ObtenerSesion())
            {
                ICriteria busqueda = sesion.CreateCriteria(typeof(Medico));
                busqueda.Add(Restrictions.Eq("Codigo", codigo));
                return busqueda.UniqueResult<Medico>();
            }
        }

        public Medico ObtenerPorNombre(String nombre)
        {
            using (ISession sesion = NHibernateHelper.ObtenerSesion())
            {
                ICriteria busqueda = sesion.CreateCriteria(typeof(Medico));
                busqueda.Add(Restrictions.Like("Nombre", nombre + "%"));
                return busqueda.UniqueResult<Medico>();
            }
        }

        public ICollection<Medico> ListarXNombre(String nombre)
        {
            using (ISession sesion = NHibernateHelper.ObtenerSesion())
            {
                ICollection<Medico> resultado = sesion
                                        .CreateCriteria(typeof(Medico))
                                        .Add(Restrictions.Like("Nombre", nombre + "%"))
                                        .List<Medico>();
                return resultado;

            }
        }

     }
}